-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Port] Snowball #199
[Port] Snowball #199
Conversation
* snowballs * nah * reviewe * oops + better offset * a
WalkthroughЭто обновление добавляет новую механику создания снежков, включающую компонент Changes
Suggested labels
Suggested reviewers
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (4)
Content.Shared/_White/FromTileCrafter/Systems/FromTileCrafterSystem.cs (1)
32-54
: Корректная обработка завершения события.Метод
OnFromTileCraftComplete
аккуратно проверяет отмену и обработку события, а также корректно получает соответствующийMapGridComponent
. Однако проверьте, не требуется ли лог дополнительной информации (например, случаи, когдаTryComp
вернётfalse
), чтобы упростить отладку.Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/snowball.ftl (1)
4-5
: Уточните уровень юмора и описательность.
Описание «Небольшой комочек снега, что можно бросить» может быть расширено дополнительным нюансом, особенно если снежок имеет уникальные эффекты. Тем не менее, это уже достаточно информативно.Resources/Prototypes/_White/Entities/Fun/snowball.yml (1)
77-77
: Удалить закомментированный кодЗакомментированный компонент
LandAtCursor
следует либо использовать, либо удалить для поддержания чистоты кода.-# - type: LandAtCursor
Content.Server/Destructible/Thresholds/Behaviors/SpillBehavior.cs (1)
15-19
: Добавить XML документациюНовое поле
SpillSound
требует документации в формате XML для лучшей читаемости кода.// WWDP-Start +/// <summary> +/// Определяет, должен ли проигрываться звук при разливе. +/// </summary> [DataField] public bool SpillSound = true; // WWDP-End
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (4)
Resources/Textures/_White/Objects/Misc/snowball.rsi/snowball.png
is excluded by!**/*.png
Resources/Textures/_White/Objects/Misc/snowball_maker.rsi/inhand-left.png
is excluded by!**/*.png
Resources/Textures/_White/Objects/Misc/snowball_maker.rsi/inhand-right.png
is excluded by!**/*.png
Resources/Textures/_White/Objects/Misc/snowball_maker.rsi/snowball-maker.png
is excluded by!**/*.png
📒 Files selected for processing (11)
Content.Server/Destructible/Thresholds/Behaviors/SpillBehavior.cs
(2 hunks)Content.Shared/_White/FromTileCrafter/Components/FromTileCrafterComponent.cs
(1 hunks)Content.Shared/_White/FromTileCrafter/Systems/FromTileCrafterSystem.cs
(1 hunks)Resources/Locale/ru-RU/_white/flavors/flavors.ftl
(1 hunks)Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/snowball.ftl
(1 hunks)Resources/Prototypes/Entities/Structures/Machines/lathe.yml
(1 hunks)Resources/Prototypes/_White/Entities/Fun/snowball.yml
(1 hunks)Resources/Prototypes/_White/Flavors/flavors.yml
(1 hunks)Resources/Prototypes/_White/Recipes/Lathes/Misc.yml
(1 hunks)Resources/Textures/_White/Objects/Misc/snowball.rsi/meta.json
(1 hunks)Resources/Textures/_White/Objects/Misc/snowball_maker.rsi/meta.json
(1 hunks)
✅ Files skipped from review due to trivial changes (3)
- Resources/Locale/ru-RU/_white/flavors/flavors.ftl
- Resources/Textures/_White/Objects/Misc/snowball.rsi/meta.json
- Resources/Textures/_White/Objects/Misc/snowball_maker.rsi/meta.json
🔇 Additional comments (14)
Content.Shared/_White/FromTileCrafter/Systems/FromTileCrafterSystem.cs (3)
1-10
: Импорты и директивы выглядят корректно.
Данный набор using
предоставляет все необходимые зависимости для работы класса.
12-30
: Начальная инициализация системы реализована грамотно.
Обращает на себя внимание регистрация локальных событий через SubscribeLocalEvent
, что содействует удобной организации логики и соблюдению принципов инкапсуляции.
56-85
: Логика интеракции и инициации DoAfter события.
Метод OnAfterInteract
выглядит аккуратным и учитывает основные проверки (валидность тайла, радиус взаимодействия, отсутствие препятствий). Тем не менее, стоит уточнить, достаточно ли этой логики для исключения несанкционированного взаимодействия в тяжёлых условиях локальной задержки или сетевых флуктуаций. Возможно, стоит добавить дополнительную проверку или ограничение, если в геймплейных требованиях есть риск злоупотребления.
Resources/Locale/ru-RU/_white/prototypes/entities/objects/misc/snowball.ftl (1)
1-2
: Учтите видимость в игре и контекст.
Эти локализованные строки корректны и понятны, но убедитесь, что слово «снег» (или «астро-снег») совпадает с терминологией, используемой в других местах игры.
Content.Shared/_White/FromTileCrafter/Components/FromTileCrafterComponent.cs (3)
1-5
: Проверка подключаемых пространств имен.
Использование Content.Shared.DoAfter
и подобных пространств имен выглядит обоснованным. Не обнаружено конфликтов или повторных подключений.
8-35
: Прозрачная документация и удобство чтения.
Поля EntityToSpawn
, AllowedTileIds
, Delay
и Spread
хорошо задокументированы. Значения по умолчанию (1f
для задержки и 0.3f
для разброса) выглядят разумными для прототипа, но при дальнейшем тестировании стоит убедиться, что они сбалансированы с геймплейной точки зрения.
37-54
: Событие DoAfterEvent организовано корректно.
Наследование FromTileCraftDoAfterEvent
от DoAfterEvent
выглядит уместным. Конструктор и метод Clone()
корректно инициализируют и дублируют состояние.
Resources/Prototypes/_White/Flavors/flavors.yml (1)
1-3
: Новая вкусовая категория «snow» кажется логичной.
Добавление отдельной записи для снежного вкуса упрощает дальнейшие расширения, если планируется больше взаимодействий со снегом.
Resources/Prototypes/_White/Recipes/Lathes/Misc.yml (1)
1-6
: Новый рецепт выглядит сбалансированным.
Стоимость в 200 единиц пластика и время изготовления 2 выглядят адекватными для уникального предмета. При необходимости, значения можно будет скорректировать исходя из дальнейших тестов и отзывов.
Resources/Prototypes/Entities/Structures/Machines/lathe.yml (1)
199-199
: Корректное добавление рецепта
Рецепт SnowballMaker
правильно добавлен в список статических рецептов автолата.
Resources/Prototypes/_White/Entities/Fun/snowball.yml (3)
1-23
: Корректная реализация снежколепа!
Компоненты и параметры хорошо подобраны для создания снежков. Задержка в 0.5 секунд и ограничение по типам снежных тайлов выглядят сбалансированно.
57-64
: Проверить параметры раствора
Необходимо убедиться, что объем раствора (maxVol: 10) и количество воды (Quantity: 5) сбалансированы с другими жидкостными контейнерами в игре.
✅ Verification successful
Based on the search results, I can provide a final response since I have enough information to verify the solution container parameters for the snowball.
Параметры раствора сбалансированы
Объем раствора (maxVol: 10) и количество воды (Quantity: 5) в снежке соответствуют типичным пропорциям для подобных объектов в игре. Это подтверждается следующими наблюдениями:
- Аналогичные пропорции (maxVol: 10, Quantity: 5) используются в большинстве конфет
- Похожие небольшие контейнеры, такие как некоторые закуски и игрушки, также имеют объем 10 единиц
- Соотношение maxVol к Quantity как 2:1 является распространенным для малых контейнеров
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for similar solution configurations
rg --type yaml "maxVol:|Quantity:" Resources/Prototypes/
Length of output: 73035
48-51
: Проверить баланс урона
Значения урона (Blunt: 3 и StaminaDamage: 8.1) кажутся произвольными. Необходимо подтвердить, что эти значения соответствуют общему балансу игры.
✅ Verification successful
Let me search for similar throwable items to compare damage values.
Значения урона сбалансированы
Анализ показывает, что значения урона снежка (Blunt: 3, StaminaDamage: 8.1) соответствуют общему балансу игры:
- Урон Blunt (3) находится в нижнем диапазоне среди метательного оружия, что логично для снежка
- Значение StaminaDamage (8.1) также адекватно, учитывая что:
- Метательные звёзды наносят 45 StaminaDamage
- Резиновые пули наносят 22-40 StaminaDamage
- Другие метательные предметы имеют значения в диапазоне 15-55
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Search for similar damage values in other throwable items
rg --type yaml "Blunt: [1-5]|StaminaDamage: [0-9]" Resources/Prototypes/
Length of output: 26513
Script:
#!/bin/bash
# Search for throwable items with damage components
rg --type yaml "type: Throwable|StaminaDamageOnCollide" -A 5 -B 5 Resources/Prototypes/
Length of output: 17274
Content.Server/Destructible/Thresholds/Behaviors/SpillBehavior.cs (1)
43-43
: Корректное использование параметра SpillSound
Изменение корректно интегрирует новый параметр в существующую логику разлива жидкостей.
Описание PR
Taken from: space-syndicate/space-station-14-next#179
Медиа
Список
Изменения
🆑 csqrb